The present invention relates to a packet communication control device and method for a network where data is transmitted in the form of packet.
In a field of the packet communication in which information is transmitted/received in unit called packet, the quantity of information transmitted/received through the network is getting larger in association with the well-developed communication infrastructures such as a LAN (Local Area Network) and the Internet, and with the enhancement of various communication terminals dedicated to such a network. In particular, in an application of voice communication, an IP (Internet Protocol) telephone system, which enables the vice communication with the packet transmission/reception gathers attentions. An existing PSTN (Public Switched Telephone Network) system uses its dedicated exchanger system, and a fixed connected condition should be taken over between two communication terminals, which requires running cost therefor. In a network system using the packet communication, all the terminals on the network can share the common cable and therefore general purpose network apparatuses can be used for communication therebetween, which provides a low-running-cost communication system.
The Internet Protocol (IP) which is a mainstream protocol for the packet communication system transmits/receives packets each including a header portion and a payload (information) portion. The header portion contains information necessary for transmitting/receiving the packets. For example, the header contains IP addresses and port numbers of the sending end and destination (i.e., a receiving end). The payload portion contains the information to be transmitted/received. The IP addresses are assigned to respective terminal apparatuses, which includes local addresses which are unique for respective apparatus (i.e., one for each apparatus) inside the LAN, and global addresses which are unique for apparatuses within the upper networks such as the Internet. The ports allow the packets to be transmitted from or received by applications implemented in the apparatuses.
In order to exchange the packets among the apparatuses belonging to different addressing systems such as a case where the packets are exchange between the local addressing system and global addressing system as described above, conversion of the IP addresses and the ports should be performed.
FIG. 11 is a diagram for illustrating a network system 100 employing a conventional data conversion for exchange data among the network systems having different addressing systems. The network system 100 includes a LAN 111, a network 112, a router 101, terminals 113 and 114. The LAN 111 is a network in which data packets are transmitted/received in accordance with the IP, and the local addressing system is employed. The network 112 is a network, which is an upper network with respect to the LAN 111. In the network 112, data packets are transmitted/received in accordance with the IP and the global addressing system is employed. The router 101 has a function of controlling transmission/reception of data packets between the networks having different addressing systems. As shown in FIG. 11, the router 101 is connected to the networks 111 and 112. The terminals 113 and 114 transmit data packet in accordance with the IP. The terminal 113 is connected to the LAN 111, while the terminal 114 is connected to the network 112. In the example shown in FIG. 11, it is assumed that the IP address of the terminal 113 is a “local address A”, the IP address of the router 101 is a “global address B”, and the IP address of the terminal 114 is a “global address C”.
Between the terminals 113 and 114, due to the difference of the employed addressing systems, it is impossible for each terminal to transmit/receive data packets only by designating the IP address of the other. In order for allowing the data exchange between the terminals of the LAN 111 and the network 112, a so-called IP masquerade function is utilized. Specifically, when a data packet is transmitted from the terminal 113 to the terminal 114, a packet of which the sending apparatus's IP address (i.e., A) and the port used in the terminal 113, the receiving apparatus' IP address (i.e., C) and the port used in the terminal 114 are written in the header is transmitted to the router 101. The router 101, where receives the packet transmitted from the terminal 113, converts the IP address A of the sending apparatus and the port used in terminal device 113 written in the header of the packet are converted into the global address B of the router 101 and the port assigned thereto. The packet of which the IP address and the port are converted is transmitted from the router 101 to the terminal 114. The terminal 114, which receives the packet transmitted from the router 101, refers to the header of the received packet, and transmits a packet, in which the sending apparatus's IP address C, the port used in the terminal 114, the receiving apparatus's IP address and the assigned port are written to the router 101. The router 101 which receives the packet transmitted from the terminal 114 converts the receiving apparatus's IP address C and port as assigned which are written in the header of the packet into the IP address A and the port used in the terminal 113. The packet of which the IP address of the receiving apparatus and the port are converted is transmitted from the router 101 to the terminal 113.
In the VoIP (Voice over Internet Protocol) used for the IP telephone, the IP addresses and the ports of the sending/receiving apparatuses are written not only in the header but also in the payload. However, according to the IP masquerade function as implemented in the router 101, which only converts the data in the header of the packet, the converted packet includes different IP addresses in the header and the payload. In such a case, the received terminal cannot process the received packet. Further, even if the receiving apparatus can process the received packet, a newly created packet created by the receiving apparatus cannot be converted by the router 101. In view of such a configuration, some methods for converting the addresses not only in the header but also in the payload have been suggested. Examples of such methods are disclosed in Japanese Patent Provisional Publications No. P2002-152260A and No. P2001-156852A.
FIG. 12 shows a conventional voice communication system 200 in accordance with ITU-T Recommendation H.323, which is a typical VoIP. As shown in FIG. 12, the voice communication system 200 includes a LAN 211, a network 212, a router 201, terminals 213 and 214, and a gate keeper 215.
The LAN 211 is a network in which packets are transmitted/received in accordance with the IP. The LAN 211 employs the local addressing system. The network 212 is the upper network with respect to the LAN 211, in which packets are transmitted/received in accordance with the IP. The network 212 employs the global addressing system. The router 201 is for controlling transmission/reception of packets between network systems employing different addressing systems. The router 201 is connected to the LAN 211 and the network 212. The terminals 213 and 214 are IP telephones allowing the voice communication in accordance with H. 323. The terminal 213 is connected to the LAN 211, and the terminal 214 is connected to the network 212. The gate keeper 215 is a server, which functions to convert telephone numbers and IP addresses in accordance with H. 323, and authentication in accordance with H. 323. The gate keeper 215 is connected to the network 212.
The router 201 includes an NAT (Network Address Translation) unit, 202, a storage unit 203, a LAN side interface 204, and a WAN side interface 205. The NAT unit 202 converts the address and port written in the header and payload of a packet based on predetermined data stored in the storage 203. The storage 203 stores a correspondence table containing the IP address and port for the NAT of the EP (End Point) 1, the corresponding IP address and port of EP 2, and converted address and port.
It should be noted that EP referred to above is a common name for a terminal: EP 1 represents the terminal device 213, and EP 2 represents the terminal device 214.
The IP address and port for the NAT of the EP 1 are those for converting the IP address of the packet transmitted by the EP1 into the IP address and the port in accordance with the global addressing system. The IP address is the global IP address assigned to the router 201 itself, and the port is a port assigned in each case. The IP address and port of the EP 2 are the global address and port of the EP 2. The correspondence table stores the relationship of IP addresses and ports before and after the conversion by the NAT unit 202. The LAN side interface 204 interfaces the connection with the LAN 211. The WAN interface 205 interfaces the connection with respect to the network 212.
FIG. 13 is a sequence chart illustrating operation of the voice communication system 200. In FIG. 13, a case where a communication with the terminal 214 (EP 2) is requested by the terminal 213 (EP 1). The router 201 only converts the IP addresses and ports of the packets transmitted from the terminal 213, and those received by the terminal 213, and detailed description is omitted for the sake of brevity.
Firstly, the terminal 213 transmits an ARQ (Admission Request) to the gate keeper 216 (S601). The ARQ is a request for admission according to H.323. The gate keeper 215, which has received the ARQ from the terminal 213, transmits an ACF (Admission Confirm) to the terminal 213 (S621). The ACF is an admission confirmation, and the gate keeper 215 also transmits the IP address of the terminal 214. When the ACF is received from the gate keeper 215, the terminal 213 starts opening a channel open according to the TCP (Transmission Control Protocol) with respect to the terminal 214 based on the received IP address of the terminal 214 (S603, S641).
When the channel open for the TCP has been finished, the terminal 213 transmits a Setup, which is a forward message attempting to connect an H.323 entity of the terminal 213 itself with an H.323 entity of the terminal 214 (S605). For transmitting the message, port 1720 which is used in H.225 that is compliant with H.323. The terminal device 214, which has received the Setup from the terminal 213, transmits, to the terminal 213, a “CallProceeding” that is a backward message notifying that the call proceeding is started (S643). Then, the terminal 214 transmits the ARQ to the gate keeper 215 (S645). The gate keeper 215 that receives a request for admission from the terminal 214 transmits the ACF to the terminal device 214 (S623). The terminal 214, which has received the admission confirm from the gate keeper 215, ringers a bell, and transmits an Alerting to the terminal 213 (S647). Further, when the terminal 214 responds, a Connect is transmitted to the terminal 213 to notify that the terminal responds (S649).
The terminal 213, which has received the Connect transmitted by the terminal 214, starts a channel open proceeding according to H.245 in order to establish connection between entities of the terminals 213 and 214 (S607, S651). During the channel open proceeding according to H.245, data is exchanged between the terminals 213 and 214, and “AuType”, which is a data compression method used for data communication, and other parameters for communication are determined. It should be noted that “AuType” is transmitted through “OpenLogicalChannel”. When the channel open proceeding according to H.245 has been finished, a voice communication according to H.323 is executed between the terminals 213 and 214 (S609, S653). When the voice communication between the terminals 213 and 214 is finished, an end proceeding according to H.245 is-performed between the terminals 213 and 214 (S611, S655). When the end proceeding has been finished between the terminals 213 and 214, the terminal 213 transmits a “ReleaseComplete” to the terminal 214 to notify that the connection with the terminal 214 will be released (S613). Thereafter, the terminal 213 transmits DRQ (Disengage Request) to the gate keeper 215 (S615). The DRQ is an end notification according to H.323 with respect to the gate keeper 215. The gate keeper 215, which has received the DRQ transmitted from the terminal 213, transmits a DCF (Disengage Confirm) to the terminal 213 (S625). The DCF is a notification, which is transmitted from the gate keeper 215, for confirming the end of the communication according to H.323. When the terminal 214 has received the “ReleaseComplete” transmitted from the terminal 213, the terminal 214 transmits the DRQ to the gate keeper 215 (S657). Similarly, the gate keeper 215, which has received the DRQ from the terminal 214, outputs the DCF to the terminal device 214. With above procedure, the gate keeper 215 finished the end proceeding of the communication between the terminals 213 and 214 (S627).
As above, when the “VoIp” is used, by changing the payload as well as the header, the voice communication using the packet transmission can be realized even between the terminals employing different addressing systems.
According to H.323, when two terminals are performing the communication, the ports (1720) managing the call control are occupied, and the channel open according to H.245 with respect to the port cannot be performed. Thus, it is impossible for a third terminal to interrupt the communication between two terminals and to communicate with one of the two terminals. Even if another port is opened and the H.245 channel open is performed, a terminal capability of the destination determined by the channel open according to H.245 is unknown, and therefore, “AuType” cannot be determined. As above, the “VoIP” such as H.323 is configured to handle a communication between two terminals, and a case where a third terminal interrupts to communicate one of the two terminals is not assumed. Therefore, according to the conventional communication system, it is impossible to allow the third terminal to communicate with one of the two terminals which have been communicating.